#pragma once

class IKeyboardDriver
{
public:
	IKeyboardDriver(uint priority, bool isExclusive);
	virtual ~IKeyboardDriver();

	/*--------------------------------------------------------------------------*/
	virtual void OnKeyboardAction() = 0;
	/*--------------------------------------------------------------------------*/

	uint GetKeyboardPriority() const;
	void SetKeyboardPriority(uint np);

	bool GetIsExclusive() const;
	void SetIsExclusive(bool b);

private:
	uint m_keyboardPriority;
	bool m_isExclusive;
};

bool CmpKeyboardDriverByPriority(const IKeyboardDriver* d1, const IKeyboardDriver* d2);